colorscale: Redraw correct widget after setting rgba
authorTimm Bäder <mail@baedert.org>
Wed, 16 Jan 2019 18:20:53 +0000 (19:20 +0100)
committerTimm Bäder <mail@baedert.org>
Wed, 16 Jan 2019 18:20:53 +0000 (19:20 +0100)
The entire color scale hack is still done in GtkRange, which draws the
color scale in the range gizmo. So, to correctly redraw the color scale
when setting a new color, we need to redraw the proper widget and that's
the trough widget.

Fixes #1453

gtk/gtkcolorscale.c
gtk/gtkrange.c
gtk/gtkrangeprivate.h

index 40cc3e05d38693755066d84d9dd5123b69d607f4..c5b7d3046abd498c86c9f8e96106bfb3c6da75c4 100644 (file)
@@ -289,7 +289,7 @@ gtk_color_scale_set_rgba (GtkColorScale *scale,
   GtkColorScalePrivate *priv = gtk_color_scale_get_instance_private (scale);
 
   priv->color = *color;
-  gtk_widget_queue_draw (GTK_WIDGET (scale));
+  gtk_widget_queue_draw (gtk_range_get_trough_widget (GTK_RANGE (scale)));
 }
 
 GtkWidget *
index d745e9317414545cc58f20642212d2efe253b61a..dcd6b95899c37675393c1a359e83e62727f3ea3a 100644 (file)
@@ -2948,6 +2948,14 @@ gtk_range_get_slider_widget (GtkRange *range)
   return priv->slider_widget;
 }
 
+GtkWidget *
+gtk_range_get_trough_widget (GtkRange *range)
+{
+  GtkRangePrivate *priv = gtk_range_get_instance_private (range);
+
+  return priv->trough_widget;
+}
+
 void
 gtk_range_start_autoscroll (GtkRange      *range,
                             GtkScrollType  scroll_type)
index f76116ea10c8889368ebb0748299a344dd12f3a9..40ee468b9c222f3c72bc4dff2809b58cf1c759f1 100644 (file)
@@ -42,6 +42,8 @@ gint               _gtk_range_get_stop_positions           (GtkRange      *range
                                                             gint         **values);
 
 GtkWidget         *gtk_range_get_slider_widget             (GtkRange *range);
+GtkWidget         *gtk_range_get_trough_widget             (GtkRange *range);
+
 
 void               gtk_range_start_autoscroll              (GtkRange      *range,
                                                             GtkScrollType  scroll_type);